Modern computer software programs can perform extremely complex tasks.
For example, CAD (Computer-Aided Design) software facilitates the design of electronic circuits by providing a user with a set of software tools running on a computer. Software applications, such as CAD, are memory intensive software applications that generate significantly large databases.
Memory intensive software applications, such as CAD, place enormous processing demands on a computer's memory subsystem. It is important to ensure that the memory subsystem can support the memory intensive requirements of these programs. Accordingly, a computer's memory subsystem should be tested to detect memory errors that will likely impact the accuracy and performance of memory intensive applications.
Since modern computer memory subsystems interact with processors that employ hundreds of thousands of gates, and more than a million individual transistors, testing to detect memory errors can be a timely and costly process. For example, memory errors that may occur when large quantities of data are transferred through memory can be difficult to detect during testing and can be even more difficult to reproduce once detected.
Due to the complexity of modern processors and computer memory subsystems, conventional memory testing systems execute a multitude of different software applications with different memory requirements to determine whether running the processor with its computer memory subsystem yields memory errors. Such testing is a difficult and time consuming process. Further, testing is expensive, since each of the software applications is likely to be proprietary and require a sub-licensing fee for its use.
Other conventional systems, such as Validation Test Suite (VTS) system of Sun Microsystems, Inc., test each component of a micro computer, such as memory, video, disc, serial ports and virtual memory. Although comprehensive, VTS processing requires significant physical memory resources. For example, VTS requires at least 8 megabytes of memory to perform system tests. This high memory demand limits its ability to detect memory errors.
Another limitation of conventional systems, such as VTS, is the time required to test a plurality of microcomputer components. Since test suite systems generally test a plurality of components, the testing software is not specifically tailored to detect caching errors. Accordingly, additional or unnecessary tests may be performed that extend the time needed to detect memory errors.
Another limitation of conventional systems, is the length and complexity of the testing software. Application software that may detect memory errors, may require 20 gigabytes or more of disk space to install the program. When the software runs it generally requires significant physical memory that limit its ability to detect memory errors that may occur when data is read into physical memory from secondary memory.
Although conventional systems may detect memory errors, there remains an unmet need for a system that applies a basic methodology to detect memory errors when data is processed through memory, so that testing of a computer's memory subsystem does not require the execution of a multitude of different software applications. Further, the software of the system should require minimal disk and physical memory and should detect memory errors within a short time cycle.